package com.biz.primus.model.order.vo;

import com.biz.primus.model.order.enums.DeliveryType;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;

/**
 * 订单中配送方式
 *
 * @author Tiger Feng
 * @date 2017年11月11日
 */
@Data
@NoArgsConstructor
@ApiModel("前台订单配送方式请求模型")
public class DeliveryVO implements Serializable {
    private static final long serialVersionUID = 5970938591584189464L;
//    门店订单：
//    可选择的配送方式：
//    达到起送金额：
//            1、到店自提（可选择自提时间、选择自提地点）；
//            2、同城配送（立即送/预约送[送达时间]）；
//    不满起送金额：
//            1、到店自提（可选择自提时间）；
//            2、物流配送（可选择物流公司）；
//
//    总店订单：
//    达到起送金额：
//            1、到店自提（可选择自提时间）；
//            2、同城配送（前提：配送地址10公里范围内有门店，不能选择送达时间）/ 物流配送（可选择物流公司）；
//    不满起送金额：
//            1、到店自提（可选择自提时间，自提地点则为当前最近门店）；
//            2、物流配送（可选择物流公司）；

    @ApiModelProperty(value = "配送方式",
            notes = "\"STORE_TRANSPORT\":\"同城配送\",\"USER_TRANSPORT\":\"到店自提\",\"THRID_TRANSPORT\":\"第三方物流\"")
    private DeliveryType deliverType;

    @ApiModelProperty("可以预约")
    private Boolean canReserve;
    @ApiModelProperty("预约?")
    private Boolean isReserve;
    @ApiModelProperty("送达时间")
    private Timestamp arriveTime;

    @ApiModelProperty("可以选择自提门店")
    private Boolean canSelectFetchDepotCode;
    @ApiModelProperty("已选自提门店编号")
    private String selectedFetchDepotCode;
    @ApiModelProperty("可以选择自提时间")
    private Boolean canSelectFetchTime;
    @ApiModelProperty("已选自提时间")
    private Timestamp selectedFetchTime;

    @ApiModelProperty("可选择的快递公司列表")
    private List<Object> optionalExpresses;
    @ApiModelProperty("已选择的快递公司")
    private Object selectedExpress;

}
